The present invention relates to compression and decompression of headers in packet transmission. More particularly, the present invention relates to a method and apparatus for performing IP-ID regeneration to improve header compression efficiency.
For Internet Protocol (IP) based real-time multimedia applications, packets (Datagrams) are used to carry the real-time data. Each packet includes a header and a payload. The header carries information each as source and destination address of the packet. The payload carries the data to be transmitted. Each packet is formatted according to the Real-Time (RTP) which is predominately used on top of User Datagram Protocol (UDP) which is used on top of the IP. RTP is described in detail in xe2x80x9cRTP: A Transport Protocol for Real-Time Applicationsxe2x80x9d by H. Schulzrinne, et al, Internet Engineering Task Force (IETF), Request for Comments (RFC) 1889, January 1996. The size of a combined IP/UDP/RTP header for a packet is at least 40 bytes for IPv4 and at least 60 bytes for IPv6. A total of 40-60 bytes overhead per packet may be considered heavy in streams (e.g., such as cellular network) where spectral efficiency is a primary concern. Consequently, a need arises for suitable IP/UDP/RTP header compression mechanisms. A current header compression scheme is described in xe2x80x9cCompressing IP/UDP/RTP Headers for Low-Speed Linksxe2x80x9d, by S. Casner et al, IETF, RFC 2508, February 1999 and xe2x80x9cIP Header Compressionxe2x80x9d by M. Degermark, et al, IETF, RFC 2507, February 1999. This header compression scheme is able to compress the 40-60 bytes IP/UDP/RTP header down to 2 or 4 bytes over point-to-point links.
Header compression is crucial for extending the IP network to cellular systems. Real-time multimedia applications usually generate a large number of packets each with a large header and a small payload. These packets need to be transferred over wireless interfaces using precious radio resources. An example of the format of a header according to IPv4 is illustrated in FIG. 1.
In general, the efficiency of a header compression algorithm heavily depends on the number and linearity of the changing fields in the IP/UDP/RTP headers of the packets. One of such fields in the IP header is the IP Identification (ID) field 101 illustrated in FIG. 1. The IP-ID field 101 identifies the packet as being part of an original large packet which may, for example, exceed the Maximum Transmission Unit (MTU) for the network.
It is typically difficult to compress the IP-ID in the header of a packet using existing header compression schemes. This is due to the fact that the IP-ID in the IP-ID field of the headers of a packet of the flow can change in a non-linear fashion. The non-linearity of the changes of the IP-ID of packets of a particular flow introduces overhead to the compressed headers and thus decreases header compression efficiency.
To more fully understand the problem, it should be noted that when a large packet (transmission unit) need to traverse a network having an MTU that is smaller than the size of the packet, fragmentation is necessary. This fragmentation can happen at either the source host which generates the large packet or at one of the routers (gateways) along the path from the source host to the destination host.
Each packet resulting from the fragmentation of the large packet is assigned an IP-ID by the IP module residing in the operating system of the source host. In most implementations, the IP module simply increments a 2 byte counter in IPv4 and a 4 byte counter in Ipv6. The IP module, whenever it receives a packet from an upper level protocol, uses the value of the counter as the IP-ID for that packet and then increments the counter. Thus, all outgoing flows from the source host share the same counter and compete with each other for an IP-ID. Therefore, when observing the packet of one transmission unit in one flow, the IP-ID of each packet of the transmission unit may appear to be non-linear and even worst with no predictable pattern at all.
This is a serious problem for existing header compression schemes, since header compression relies upon either the linearity or the predictability of the fields of the headers of the packets. If a particular field is not linear or predictable then the field cannot be compressed and must be transmitted with the packet in its full state, thereby reducing header compression efficiency.
The above problem is illustrated in FIG. 2 wherein a multimedia application at a host A 202 transmits audio information by a first flow 201, video information by a second flow 203 and any IP packets by a third flow 205. The first and second flows 201 and 203, respectively, are carried to a host B 204 and the third flow 205 is carried to a host C 206. As illustrated, the IP-ID for the packets a transmission unit on of the first flow 201 can, for example, take on the values of 1, 9, 12, 14, 17 . . . , respectively, whereas the IP-ID of the packets of a transmission unit on the second flow 203 can, for example, take on the values of 2, 5, 6, 11, 13 . . . , respectively. Further, the IP-ID of the packets of the third flow 205 can, for example, take on the values of 3, 4, 10, 15, 16 . . . , respectively. Thus, the IP-ID""s of each of the packets for each of the transmission units of each of the flows are non-linear and unpredictable.
A compressor 208 when encountering the first and second flows 201 and 203, respectively, must compress the two flows with respect to two different contexts, context 1 and context 2 respectively. For each context the IP-ID of each of the packets for each of the flows will introduce significant compression overhead due to their non-linearity and unpredictability. In other words, the IP-ID for each packet must be kept in its original form since it would be impossible to compress and use as part of the reference header in the context since the values that the IP-ID take on for each subsequent packet is non-linear and unpredictable. Thus, header compression efficiency is reduced.
The present invention provides a method and apparatus for performing IP-ID regeneration to improve header compression efficiency.
The present invention is operable in a system having a transmitter which transmits a plurality of packets to a receiver wherein each of the packets contains a header including identification (ID) information identifying the packet as part of a transmission unit. In the present invention, the overhead for compressing headers of a plurality of packets that form a transmission unit can be reduced by reassembling the packets that form the transmission unit, removing the ID information from the headers of the packets that form the transmission unit, and after removing the ID information, compressing the headers of the packets that form the transmission unit. The packets having the compressed headers are then transmitted from the transmitter to the receiver.
Further, in the present invention, the receiver, upon receiving the packets having the compressed header, decompresses the compressed headers to obtain again the packets included in the transmission unit. Thereafter, new ID information is regenerated and inserted in each of the headers of the packets that form the transmission unit. The regenerated ID information again identifies each of the packets that form part of the transmission unit.